home *** CD-ROM | disk | FTP | other *** search
/ Best Tools for JAVA / Best Tools for JAVA.iso / JAVA_ALL / HOTJAVA_ / HOTJAVA / CLASSSRC / BROWSER / TEXTAR~1.JAV < prev    next >
Encoding:
Text File  |  1995-08-11  |  2.0 KB  |  68 lines

  1. /*
  2.  * @(#)TextAreaTagRef.java    1.5 95/03/14 Jonathan Payne
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. package browser;
  21.  
  22. import browser.forms.FormItem;
  23. import browser.forms.textarea;
  24. import net.www.html.Tag;
  25. import net.www.html.TagRef;
  26.  
  27. /** A TextAreaTagRef is just like an InputTagRef.  We just stick in
  28.     the "type" field in the TagRef for them. */
  29.  
  30. class TextAreaTagRef extends InputTagRef {
  31.     boolean textInitialized = false;
  32.  
  33.     public TextAreaTagRef(Tag t, int pos, boolean isEnd) {
  34.     super(t, pos, isEnd);
  35.  
  36.     addAttribute("type", "textarea");
  37.     }
  38.  
  39.     void initializeText(byte text[], TagRef ref) {
  40.     String  value = new String(text, 0, pos, ref.pos - pos);
  41.  
  42.     ((textarea) item).setInitialValue(value);
  43.     }
  44.  
  45.     public void apply(WRFormatter f) {
  46.     try {
  47.         FormTagRef        form = f.formContext();
  48.         TextAreaTagRef  text = (TextAreaTagRef) form.getInputItem();
  49.  
  50.         if (!isEnd) {
  51.         super.apply(f);
  52.         form.setInputItem(this);
  53.         f.stopRendering();
  54.         } else {
  55.         if (!textInitialized) {
  56.             text.initializeText(f.doc.getText(), this);
  57.             textInitialized = true;
  58.         }
  59.         form.setInputItem(null);
  60.         f.startRendering();
  61.         }
  62.     } catch (Exception e) {
  63.         e.printStackTrace();
  64.         System.out.println("Error: " + e + " while processing " + this.toExternalForm());
  65.     }
  66.     }
  67. }
  68.